package test

import (
	"fmt"
	"gorm/internal/database"
	"gorm/internal/domain"
)

func GormInit() {

	db := database.DB

	db.AutoMigrate(&domain.Product{})

	// 创建记录
	productCreate := &domain.Product{Code: "L1212", Price: 10}
	result := db.Create(productCreate) // result 包含了操作结果，例如错误信息、影响的行数等
	if result.Error != nil {
		fmt.Println("创建记录失败:", result.Error)
	}
	fmt.Printf("成功创建记录，ID: %d, 影响行数: %d\n", productCreate.ID, result.RowsAffected)

	// 读取记录
	var productRead domain.Product
	db.First(&productRead, 1) // 根据主键查询第一条记录
	fmt.Printf("根据 ID=1 查询到的产品: %#v\n", productRead)

	// 根据条件查询
	db.First(&productRead, "code = ?", "L1212")
	fmt.Printf("根据 Code='L1212' 查询到的产品: %#v\n", productRead)

	// 更新记录
	db.Model(&productRead).Update("Price", 2000)
	fmt.Printf("更新后的产品价格: %d\n", productRead.Price)

	db.Model(&productRead).Updates(map[string]interface{}{"Code": "L1213", "Price": 2100})
	fmt.Printf("多次更新后的产品: %#v\n", productRead)

	// 删除记录
	db.Delete(&productRead, productRead.ID)
	fmt.Printf("ID 为 %d 的产品已被删除\n", productRead.ID)
}
